#include "../code/defs.h"

int main(int argc, char* argv[])
{    
    string nombre_ganador, nombre_turno, nombre_entrada;
    
    if (argc == 2)
    {
		string nombre = argv[1];
        nombre_entrada = nombre + ".in";
        nombre_ganador = nombre + "Ganadores.out";
		nombre_turno = nombre + "Turnos.out";
    }
    else        
	{
		cout << "Se necesita por lo menos un parámetro, el nombre del archivo a utilizar" << endl;
		exit(1);            
	}
        
    ifstream entrada(nombre_entrada.c_str());
    ofstream ganadores(nombre_ganador.c_str());
    ofstream turnos(nombre_turno.c_str());
        
    int cant_empate, cant_jug1, cant_jug2, cant_aburrimiento;
    int turno_empate, turno_jug1, turno_jug2;
    double prom_empate, prom_jug1, prom_jug2;
    
    int n, ganador, turno;
    
    fornx(i, 2, 21)
    {
		cant_empate = cant_jug1 = cant_jug2 = cant_aburrimiento = 0;
		turno_empate = turno_jug1 = turno_jug2 = 0;
				
		forn(i, 100)
		{
			/* Leer n, el ganador y el turno. */
			entrada >> n >> ganador >> turno;			
			
			if (ganador == 0)
			{
				cant_empate++;
				turno_empate += turno;
			}
			
			if (ganador == 1)
			{
				cant_jug1++;
				turno_jug1 += turno;
			}
			
			if (ganador == 2)
			{
				cant_jug2++;
				turno_jug2 += turno;
			}
			
			if (ganador == -1)
			{
				cant_aburrimiento++;				
			}
		}
		
		/* Calcular el turno promedio de cada ganador. */
		prom_empate 		= (cant_empate == 0)? 0: ((double) turno_empate) / ((double) cant_empate);
		prom_jug1 			= (cant_jug1 == 0)? 0: ((double) turno_jug1) / ((double) cant_jug1);
		prom_jug2 			= (cant_jug2 == 0)? 0: ((double) turno_jug2) / ((double) cant_jug2);
		
		/* Guardar los datos en los archivos de salida. */
		ganadores << n << endl;
		ganadores << cant_empate << " " << cant_jug1 << " " << cant_jug2 << " " << cant_aburrimiento << endl;
		
		turnos << n << endl;
		turnos << prom_empate << " " << prom_jug1 << " " << prom_jug2 << endl;
	}
	
	entrada.close();
	ganadores.close();
	turnos.close();	
    
    return 0;
}
